bitkeeper revision 1.1159.168.7 (419a6fbepARynjSYyfFg1S3Py1v94A)
authorkaf24@freefall.cl.cam.ac.uk <kaf24@freefall.cl.cam.ac.uk>
Tue, 16 Nov 2004 21:23:10 +0000 (21:23 +0000)
committerkaf24@freefall.cl.cam.ac.uk <kaf24@freefall.cl.cam.ac.uk>
Tue, 16 Nov 2004 21:23:10 +0000 (21:23 +0000)
Xen build fixes. Work with Hardened GCC.

xen/Makefile
xen/Rules.mk
xen/arch/x86/Rules.mk

index 2536492268c91aa4d8fd0a8b7ed71bc2d682d82b..da36a2010d07c6ebcc1f602740a6c88b234a562b 100644 (file)
@@ -26,7 +26,7 @@ install: $(TARGET)
        install -m0644 include/public/COPYING $(prefix)/usr/include/xen
 
 dist: $(TARGET)
-       $(MAKE) prefix=`pwd`/../install dist=yes install
+       $(MAKE) prefix=`pwd`/../dist/install dist=yes install
 
 clean:
        $(MAKE) -C figlet clean
index ecb20cb35a08c260ba8390f1caf1b0210537020a..63c3a51784c21b1d7263d76d52126daaacf4c84c 100644 (file)
@@ -39,6 +39,8 @@ ALL_OBJS += $(BASEDIR)/arch/$(TARGET_ARCH)/arch.o
 HOSTCC     = gcc
 HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer 
 
+test-gcc-flag = $(shell gcc -v --help 2>&1 | grep -q " $(1) " && echo $(1))
+
 include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
 
 ifneq ($(debug),y)
@@ -62,6 +64,8 @@ ifeq ($(trace),y)
 CFLAGS += -DTRACE_BUFFER
 endif
 
+CFLAGS := $(strip $(CFLAGS))
+
 %.o: %.c $(HDRS) Makefile
        $(CC) $(CFLAGS) -c $< -o $@
 
index fd4577f48cfab8010de55d1dbb949c37f8717b58..bceb1982f4377758c7a0a53f0f7e313fc67e3435 100644 (file)
@@ -14,10 +14,14 @@ else
 x86_32/usercopy.o: CFLAGS += -O1
 endif
 
-
 # Prevent floating-point variables from creeping into Xen.
 CFLAGS  += -msoft-float
 
+# Disable PIE/SSP if GCC supports them. They can break us.
+CFLAGS  += $(call test-gcc-flag,-nopie)
+CFLAGS  += $(call test-gcc-flag,-fno-stack-protector)
+CFLAGS  += $(call test-gcc-flag,-fno-stack-protector-all)
+
 ifeq ($(TARGET_SUBARCH),x86_32)
 CFLAGS  += -m32 -march=i686
 LDFLAGS := --oformat elf32-i386